package defs

/*  数据模型相关 打标签为了序列化反序列化*/

/* resuests */
// UserCredential 用户认证
type UserCredential struct {
	Username string `json:"user_name"`
	Pwd      string `json:"pwd"`
}

// NewComment 新的评论
type NewComment struct {
	AuthorId int    `json:"author_id"`
	Content  string `json:"content"`
}

// NewVideo 新的视频
type NewVideo struct {
	AuthorId int    `json:"author_id"`
	Name     string `json:"name"`
}

/* response */
// SignedUp 用户注册
type SignedUp struct {
	Success   bool   `json:"success"`
	SessionId string `json:"session_id"`
}

// SignedIn 用户登录
type SignedIn struct {
	Success   bool   `json:"success"`
	SessionId string `json:"session_id"`
}

// UserSession 用户session
type UserSession struct {
	Username  string `json:"user_name"`
	SessionId string `json:"session_id"`
}

// UserInfo 用户id
type UserInfo struct {
	Id int `json:"id"`
}

// VideosInfo 视频列表
type VideosInfo struct {
	Videos []*VideoInfo `json:"videos"`
}

// Comments 评论列表
type Comments struct {
	Comments []*Comment `json:"comments"`
}

/* data model */
// User 用户数据模型
type User struct {
	Id        int
	LoginName string
	Pwd       string
}

// VideoInfo 视频数据模型
type VideoInfo struct {
	Id           string `json:"id"`
	AuthorId     int    `json:"author_id"`
	Name         string `json:"name"`
	DisplayCtime string `json:"display_ctime"`
}

// Comment 评论数据模型
type Comment struct {
	Id      string `json:"id"`
	VideoId string `json:"video_id"`
	Author  string `json:"author"`
	Content string `json:"content"`
}

// SimpleSession session
type SimpleSession struct {
	Username string // login name
	TTL      int64  // 过期时间
}
